OBJ := $(OBJ_DIR)/FileControlBlock.o $(OBJ_DIR)/RegularFile.o $(OBJ_DIR)/DeviceFile.o $(OBJ_DIR)/Directory.o $(OBJ_DIR)/RootFS.o $(OBJ_DIR)/UDevFS.o $(OBJ_DIR)/VFS.o

$(OBJ_DIR)/fs.o : $(OBJ)
	$(LD) $(OBJ) -r -o $@

$(OBJ_DIR)/RootFS.o : RootFS.cpp RootFS.h FileSystem.h Directory.h File.h
	$(CC) -o $@ RootFS.cpp

$(OBJ_DIR)/UDevFS.o : UDevFS.cpp UDevFS.h FileSystem.h Directory.h File.h
	$(CC) -o $@ UDevFS.cpp

$(OBJ_DIR)/VFS.o : VFS.cpp VFS.h FileSystem.h Directory.h File.h RootFS.h UDevFS.h
	$(CC) -o $@ VFS.cpp

$(OBJ_DIR)/FileControlBlock.o : FileControlBlock.cpp FileControlBlock.h File.h Directory.h
	$(CC) -o $@ FileControlBlock.cpp

$(OBJ_DIR)/RegularFile.o : RegularFile.cpp RegularFile.h
	$(CC) -o $@ RegularFile.cpp

$(OBJ_DIR)/DeviceFile.o : DeviceFile.cpp DeviceFile.h
	$(CC) -o $@ DeviceFile.cpp

$(OBJ_DIR)/Directory.o : Directory.cpp Directory.h
	$(CC) -o $@ Directory.cpp

clean : - rm $(OBJ)

.PHONY : all clean

